import { IPSAppDEACMode } from './ipsapp-deacmode';
import { IPSAppDEDataExport } from './ipsapp-dedata-export';
import { IPSAppDEDataImport } from './ipsapp-dedata-import';
import { IPSAppDEMethod } from './ipsapp-demethod';
import { IPSAppDEPrint } from './ipsapp-deprint';
import { IPSAppDEUILogic } from './ipsapp-deuilogic';
import { IPSAppDataEntity } from './ipsapp-data-entity';
import { IPSAppUILogic } from '../logic/ipsapp-uilogic';
import { IPSAppUIAction } from '../view/ipsapp-uiaction';
import { IPSAppView } from '../view/ipsapp-view';
import { IPSDEUIAction } from '../../dataentity/uiaction/ipsdeuiaction';

/**
 *
 * @export
 * @interface IPSAppDEUIAction
 */
export interface IPSAppDEUIAction extends IPSDEUIAction, IPSAppUIAction {
  /**
   * 无权限显示模式
   * @description 值模式 [无权限按钮显示模式] {1：禁用、 2：隐藏、 6：隐藏且默认隐藏 }
   * @type {( number | 1 | 2 | 6)}
   * @default 2
   */
  noPrivDisplayMode: number | 1 | 2 | 6;

  /**
   * 前端应用视图
   *
   * @type {IPSAppView}
   */
  getFrontPSAppView(): IPSAppView | null;

  /**
   * 应用实体自填模式
   *
   * @type {IPSAppDEACMode}
   */
  getPSAppDEACMode(): IPSAppDEACMode | null;

  /**
   * 应用实体数据导出
   *
   * @type {IPSAppDEDataExport}
   */
  getPSAppDEDataExport(): IPSAppDEDataExport | null;

  /**
   * 应用实体数据导入
   *
   * @type {IPSAppDEDataImport}
   */
  getPSAppDEDataImport(): IPSAppDEDataImport | null;

  /**
   * 应用实体方法
   *
   * @type {IPSAppDEMethod}
   */
  getPSAppDEMethod(): IPSAppDEMethod | null;

  /**
   * 应用实体打印
   *
   * @type {IPSAppDEPrint}
   */
  getPSAppDEPrint(): IPSAppDEPrint | null;

  /**
   * 应用实体界面逻辑
   *
   * @type {IPSAppDEUILogic}
   */
  getPSAppDEUILogic(): IPSAppDEUILogic | null;

  /**
   * 应用实体
   *
   * @type {IPSAppDataEntity}
   */
  getPSAppDataEntity(): IPSAppDataEntity | null;

  /**
   * 应用预置界面逻辑
   *
   * @type {IPSAppUILogic}
   */
  getPSAppUILogic(): IPSAppUILogic | null;
}
